runtime.schedt.nmspinning (field)
17 uses
runtime (current package)
proc.go#L2275: if int32(atomic.Xadd(&sched.nmspinning, -1)) < 0 {
proc.go#L2349: if atomic.Load(&sched.nmspinning)+atomic.Load(&sched.npidle) == 0 && atomic.Cas(&sched.nmspinning, 0, 1) { // TODO: fast atomic
proc.go#L2401: if atomic.Load(&sched.nmspinning) != 0 || !atomic.Cas(&sched.nmspinning, 0, 1) {
proc.go#L2466: if int32(atomic.Xadd(&sched.nmspinning, -1)) < 0 {
proc.go#L2593: if _g_.m.spinning || 2*atomic.Load(&sched.nmspinning) < procs-atomic.Load(&sched.npidle) {
proc.go#L2596: atomic.Xadd(&sched.nmspinning, 1)
proc.go#L2700: if int32(atomic.Xadd(&sched.nmspinning, -1)) < 0 {
proc.go#L2715: atomic.Xadd(&sched.nmspinning, 1)
proc.go#L2724: atomic.Xadd(&sched.nmspinning, 1)
proc.go#L2794: atomic.Xadd(&sched.nmspinning, 1)
proc.go#L3029: nmspinning := atomic.Xadd(&sched.nmspinning, -1)
proc.go#L5246: if runqempty(_p_) && atomic.Load(&sched.nmspinning)+atomic.Load(&sched.npidle) > 0 && pd.syscallwhen+10*1000*1000 > now {
proc.go#L5337: print("SCHED ", (now-starttime)/1e6, "ms: gomaxprocs=", gomaxprocs, " idleprocs=", sched.npidle, " threads=", mcount(), " spinningthreads=", sched.nmspinning, " idlethreads=", sched.nmidle, " runqueue=", sched.runqsize)
proc.go#L6094: if i >= active_spin || ncpu <= 1 || gomaxprocs <= int32(sched.npidle+sched.nmspinning)+1 {
runtime2.go#L766: nmspinning uint32 // See "Worker thread parking/unparking" comment in proc.go.